﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using radnaVerzija.Interfejsi;
using MySql.Data.MySqlClient;

namespace radnaVerzija
{

    public partial class DAL{
    public class SportskoDrustvoDAO
    {
         protected MySqlCommand komanda;

            public long create(SportskoDrustvo entitet)
            {
                try
                {
                    komanda = new MySqlCommand("insert into SportskoDrustvo (ime, idUgovora, brojClanova, idOsoba) values (@imeDrustva, @idUgovor, @maxBrojClanova, @idTrener);", konekcija);
                    komanda.Parameters.AddWithValue("@idUgovor", entitet.IdUgovora);
                    komanda.Parameters.AddWithValue("@imeDrustva", entitet.ImeDrustva);
                    komanda.Parameters.AddWithValue("@maxBrojClanova", entitet.MaxBrojClanova);
                    komanda.Parameters.AddWithValue("@idTrener", entitet.Trener);
                    komanda.ExecuteNonQuery();
                    return komanda.LastInsertedId;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public SportskoDrustvo read(SportskoDrustvo entitet)
            {
                try
                {
                    komanda = new MySqlCommand("select * from SportskoDrustvo where idSportskoDrustvo = @id;", konekcija);
                    komanda.Parameters.AddWithValue("@id", entitet.IdSD);
                    MySqlDataReader citac = komanda.ExecuteReader();
                    SportskoDrustvo sd = null;
                    citac.Read();
                    if (false == citac.HasRows) { citac.Close(); return null; }
                      sd = new SportskoDrustvo(citac.GetString("ime"),
                          citac.GetInt32("idUgovora"),
                          citac.GetInt32("brojClanova"),
                          citac.GetInt32("idOsoba"));
                      citac.Close();
                      return sd;
                    
                
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public SportskoDrustvo update(SportskoDrustvo entitet)
            {
                try
                {
                    komanda = new MySqlCommand("update SportskoDrustvo set idUgovora = @idUgovor, ime = @imeDrustva, brojClanova = @maxBrojClanova, idOsoba = @idTrener where idSportskoDrustvo=@id;", konekcija);
                    komanda.Parameters.AddWithValue("@idUgovor", entitet.IdUgovora);
                    komanda.Parameters.AddWithValue("@imeDrustva", entitet.ImeDrustva);
                    komanda.Parameters.AddWithValue("@maxBrojClanova", entitet.MaxBrojClanova);
                    komanda.Parameters.AddWithValue("@idTrener", entitet.Trener);
                    komanda.Parameters.AddWithValue("@id", entitet.IdSD);
                    komanda.ExecuteNonQuery();
                    return read(entitet);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public void delete(SportskoDrustvo entitet)
            {
                try
                {
                    komanda = new MySqlCommand("delete from SportskoDrustvo where idSportskoDrustvo = @id", konekcija);
               
                    komanda.Parameters.AddWithValue("@id", entitet.IdSD);
                    komanda.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public SportskoDrustvo getByContractID(int p)
            {
                try
                {
                    komanda = new MySqlCommand("select * from SportskoDrustvo where idSportskoDrustvo = @id", konekcija);
                    komanda.Parameters.AddWithValue("@id", p);
                    MySqlDataReader citac = komanda.ExecuteReader();
                    citac.Read();
                    if (false == citac.HasRows) { citac.Close(); return null; }
                    SportskoDrustvo sd = new SportskoDrustvo(citac.GetString("ime"),
                              citac.GetInt32("idUgovora"),
                              citac.GetInt32("brojClanova"),
                              citac.GetInt32("idOsoba"));
                    citac.Close();
                    return sd;
                }
                catch(Exception ex)
                {
                    throw ex;
                }
            }

            public List<SportskoDrustvo> getALL()
            {
                try
                {
                    komanda = new MySqlCommand("select * from SportskoDrustvo;", konekcija);
                    MySqlDataReader citac = komanda.ExecuteReader();
                    List<SportskoDrustvo> _sd = new List<SportskoDrustvo>();
                    while (citac.Read())
                    {
                        SportskoDrustvo zaUbaciti = new SportskoDrustvo(citac.GetString("ime"),
                        citac.GetInt32("idUgovora"),
                        citac.GetInt32("brojClanova"),
                        citac.GetInt32("idOsoba"));
                        zaUbaciti.IdSD = citac.GetInt32("idSportskoDrustvo");
                        _sd.Add(zaUbaciti);
                    }

                    citac.Close();
                    return _sd;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    }
    }
    }

